It is frequently desirable in computer processing to store intermediate results of such processing in temporary files. A temporary file is generally a file which is designed to be destroyed upon shut-down of the computer system within which the file is stored and which can therefore be stored in volatile storage. A computer process can create such temporary files for workspace for storage of intermediate results or to take advantage of the quickness with which such temporary files are accessed.
Temporary files are generally accessed particularly efficiently since temporary files are frequently stored in primary storage rather than secondary storage. Primary storage typically includes computer memory such as randomly accessible memory (RAM and is currently most commonly found in the form of semiconductor memory devices. Secondary storage typically involves magnetic and optical storage media such as magnetic and optical disks. Access to secondary storage typically requires many times as much time as access to primary storage. Permanent files, i.e., files which generally persist past the shut-down of a computer within which the files are stored, are typically stored in secondary storage. Therefore, access to temporary files can be many times more efficient than access to permanent files.
Temporary files are typically implemented by a file system which is called, in some computer systems, the temporary file system or "tmpfs." The temporary file system is implemented separately from the UNIX file system, i.e., "ufs" in some computer systems, and other file systems of a computer system which generally implement files other than temporary files. It is generally preferable that all file systems have analogous interfaces and generally similar behaviors such that a computer process requires only minor modification to create and manipulate files implemented by one or another of the various file systems. To provide an analogous interface and generally similar behavior to the comprehensive UNIX file system, the temporary file system is itself rather comprehensive and complex. The complexity of the temporary file system makes maintenance of the temporary file system a sizeable task.
In addition, changes to and extensions of the UNIX file system must also be implemented in the temporary file system. Thus, two solutions must generally be found for each problem: one for the UNIX file system and one for the temporary file system. For example, the UNIX file system in some operating systems limits the amount of data which can be stored in a single file to a maximum, e.g., 2 gigabytes. If the UNIX file system is modified to permit larger amounts of data in a single file, the temporary file system must also be modified to permit such larger amount of data to be stored in a single temporary file. The implementation of such a modification can be entirely different between the various file systems, requiring entirely different, multiple implementations of the modification.
What persists as an unsolved need in the industry is a temporary file system which obviates much of the duplicate maintenance required by conventional temporary file systems.